package com.aatattoo.light_food_service.mapper;

import com.aatattoo.light_food_service.entity.MappingTag;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Author aatattoo
 * @Date 2021/12/9 9:36 下午
 * @msg:
 */
@Mapper
@Repository
public interface MappingTagMapper {
    /**
     * 新增表单与标签的映射
     * @param mappingTag#{dynamicId} 表单id
     *                   #{tagId} 标签id
     *                   #{order} 标签排序
     * @return
     */
    int addMappingTag(MappingTag mappingTag);

    /**
     * 获取一个表单的全部映射内容
     * @param dynamicId 表单id
     * @return
     */
    List<MappingTag> findAllByDynamicId(@Param("dynamicId") int dynamicId);

    /**
     * 获取映射表单的一个id
     * @param mappingTag #{dynamicId} 表单id
     *                   #{tagId} 标签id
     * @return
     */
    int getIdByTag(MappingTag mappingTag);

    /**
     * 删除一个映射关系
     * @param id #{id}映射表单id
     * @return
     */
    int deleteMappingById(@Param("id")int id);

    /**
     * 删除一个表单的全部映射关系
     * @param dynamicId #{dynamicId} 表单id
     * @return
     */
    int deleteByDynamicId(@Param("dynamicId")int dynamicId);

    /**
     * 更新映射表单排序
     * @param mappingTag #{order} 排序内容
     *                   #{id} 映射表主键id
     * @return
     */
    int updataMappingOrder(MappingTag mappingTag);

    /**
     * 获取指定标签的所有相关动态
     * @param id
     * @return
     */
    List<Integer> getRelevantDynamicId(@Param("id")int id);
}
